package Adapter;

// 目标抽象类（对应CarController）
abstract class CarController {
    public abstract void move();
    public abstract void phonate();
    public abstract void twinkle();
}

// 现有声音类（对应PoliceSound）
class PoliceSound {
    public void alarmSound() {
        System.out.println("发出警笛声音");
    }
}

// 现有灯光类（对应PoliceLamp）
class PoliceLamp {
    public void alarmLamp() {
        System.out.println("闪烁警灯灯光");
    }
}

// 适配器类
class PoliceCarAdapter extends CarController {
    private PoliceSound sound;
    private PoliceLamp lamp;

    public PoliceCarAdapter() {
        this.sound = new PoliceSound();
        this.lamp = new PoliceLamp();
    }

    @Override
    public void move() {
        System.out.println("玩具汽车开始移动");
    }

    @Override
    public void phonate() {
        sound.alarmSound();  // 适配声音接口
    }

    @Override
    public void twinkle() {
        lamp.alarmLamp();    // 适配灯光接口
    }
}

// 客户端使用
class Client {
    public static void main(String[] args) {
        // 创建适配器（玩具汽车）
        CarController toyCar = new PoliceCarAdapter();

        // 使用标准接口操作
        toyCar.move();     // 汽车移动
        toyCar.phonate();  // 发出警报声
        toyCar.twinkle();  // 闪烁警报灯
    }
}
